package com.littcore.saap.personal.po;

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import java.io.Serializable;

/**
 * <br>
 * Table:todo<br>
 * @author Hibernate Tools 3.4.0.CR1
 * @version 1.0
 * @since Jul 2, 2015 10:38:49 AM
 */
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true, dynamicInsert = true)
@Table(name = "todo")
public class Todo implements Serializable {
	/**
	 * UID
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 序号.
	 */
	private Integer id;

	/**
	 * 内容.
	 */
	private String content;

	/**
	 * 状态(2002)
	        -2：推迟
	        -1：取消
	        1：未开始
	        2：正在进行
	        3：完成.
	 */
	private int status;

	/**
	 * 是否需要提醒.
	 */
	private boolean isNeedRemind;

	/**
	 * 提醒时间.
	 */
	private Date remindDatetime;

	/**
	 * 代办时间.
	 */
	private Date todoDatetime;

	/**
	 * 创建用户.
	 */
	private int createBy;

	/**
	 * 创建时间.
	 */
	private Date createDatetime;

	/**
	 * 更新时间.
	 */
	private Date updateDatetime;

	/**
	 * 图标.
	 */
	private String iconUrl;

	/**
	 * 是否公开.
	 */
	private boolean isPublic;

	/**
	 * 场景标签.
	 */
	private String tags;

	public Todo() {
	}

	public Todo(String content, int status, boolean isNeedRemind,
			Date todoDatetime, int createBy, Date createDatetime,
			Date updateDatetime, boolean isPublic, String tags) {
		this.content = content;
		this.status = status;
		this.isNeedRemind = isNeedRemind;
		this.todoDatetime = todoDatetime;
		this.createBy = createBy;
		this.createDatetime = createDatetime;
		this.updateDatetime = updateDatetime;
		this.isPublic = isPublic;
		this.tags = tags;
	}

	public Todo(String content, int status, boolean isNeedRemind,
			Date remindDatetime, Date todoDatetime, int createBy,
			Date createDatetime, Date updateDatetime, String iconUrl,
			boolean isPublic, String tags) {
		this.content = content;
		this.status = status;
		this.isNeedRemind = isNeedRemind;
		this.remindDatetime = remindDatetime;
		this.todoDatetime = todoDatetime;
		this.createBy = createBy;
		this.createDatetime = createDatetime;
		this.updateDatetime = updateDatetime;
		this.iconUrl = iconUrl;
		this.isPublic = isPublic;
		this.tags = tags;
	}

	/**  
	 * Get 序号.
	 * @return 序号
	 */
	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "ID", unique = true, nullable = false)
	public Integer getId() {
		return this.id;
	}

	/**
	 * Set 序号.
	 * @param id 序号
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**  
	 * Get 内容.
	 * @return 内容
	 */

	@Column(name = "CONTENT", nullable = false, length = 2000)
	public String getContent() {
		return this.content;
	}

	/**
	 * Set 内容.
	 * @param content 内容
	 */
	public void setContent(String content) {
		this.content = content;
	}

	/**  
	 * Get 状态(2002)
	        -2：推迟
	        -1：取消
	        1：未开始
	        2：正在进行
	        3：完成.
	 * @return 状态(2002)
	        -2：推迟
	        -1：取消
	        1：未开始
	        2：正在进行
	        3：完成
	 */

	@Column(name = "STATUS", nullable = false)
	public int getStatus() {
		return this.status;
	}

	/**
	 * Set 状态(2002)
	        -2：推迟
	        -1：取消
	        1：未开始
	        2：正在进行
	        3：完成.
	 * @param status 状态(2002)
	        -2：推迟
	        -1：取消
	        1：未开始
	        2：正在进行
	        3：完成
	 */
	public void setStatus(int status) {
		this.status = status;
	}

	/**  
	 * Get 是否需要提醒.
	 * @return 是否需要提醒
	 */

	@Column(name = "IS_NEED_REMIND", nullable = false)
	public boolean isIsNeedRemind() {
		return this.isNeedRemind;
	}

	/**
	 * Set 是否需要提醒.
	 * @param isNeedRemind 是否需要提醒
	 */
	public void setIsNeedRemind(boolean isNeedRemind) {
		this.isNeedRemind = isNeedRemind;
	}

	/**  
	 * Get 提醒时间.
	 * @return 提醒时间
	 */

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "REMIND_DATETIME", length = 19)
	public Date getRemindDatetime() {
		return this.remindDatetime;
	}

	/**
	 * Set 提醒时间.
	 * @param remindDatetime 提醒时间
	 */
	public void setRemindDatetime(Date remindDatetime) {
		this.remindDatetime = remindDatetime;
	}

	/**  
	 * Get 代办时间.
	 * @return 代办时间
	 */

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "TODO_DATETIME", nullable = false, length = 19)
	public Date getTodoDatetime() {
		return this.todoDatetime;
	}

	/**
	 * Set 代办时间.
	 * @param todoDatetime 代办时间
	 */
	public void setTodoDatetime(Date todoDatetime) {
		this.todoDatetime = todoDatetime;
	}

	/**  
	 * Get 创建用户.
	 * @return 创建用户
	 */

	@Column(name = "CREATE_BY", nullable = false)
	public int getCreateBy() {
		return this.createBy;
	}

	/**
	 * Set 创建用户.
	 * @param createBy 创建用户
	 */
	public void setCreateBy(int createBy) {
		this.createBy = createBy;
	}

	/**  
	 * Get 创建时间.
	 * @return 创建时间
	 */

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "CREATE_DATETIME", nullable = false, length = 19)
	public Date getCreateDatetime() {
		return this.createDatetime;
	}

	/**
	 * Set 创建时间.
	 * @param createDatetime 创建时间
	 */
	public void setCreateDatetime(Date createDatetime) {
		this.createDatetime = createDatetime;
	}

	/**  
	 * Get 更新时间.
	 * @return 更新时间
	 */

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "UPDATE_DATETIME", nullable = false, length = 19)
	public Date getUpdateDatetime() {
		return this.updateDatetime;
	}

	/**
	 * Set 更新时间.
	 * @param updateDatetime 更新时间
	 */
	public void setUpdateDatetime(Date updateDatetime) {
		this.updateDatetime = updateDatetime;
	}

	/**  
	 * Get 图标.
	 * @return 图标
	 */

	@Column(name = "ICON_URL", length = 200)
	public String getIconUrl() {
		return this.iconUrl;
	}

	/**
	 * Set 图标.
	 * @param iconUrl 图标
	 */
	public void setIconUrl(String iconUrl) {
		this.iconUrl = iconUrl;
	}

	/**  
	 * Get 是否公开.
	 * @return 是否公开
	 */

	@Column(name = "IS_PUBLIC", nullable = false)
	public boolean isIsPublic() {
		return this.isPublic;
	}

	/**
	 * Set 是否公开.
	 * @param isPublic 是否公开
	 */
	public void setIsPublic(boolean isPublic) {
		this.isPublic = isPublic;
	}

	/**  
	 * Get 场景标签.
	 * @return 场景标签
	 */

	@Column(name = "TAGS", nullable = false, length = 200)
	public String getTags() {
		return this.tags;
	}

	/**
	 * Set 场景标签.
	 * @param tags 场景标签
	 */
	public void setTags(String tags) {
		this.tags = tags;
	}

}
